package de.mmis.core.base.event;

/**
 * This interface extends normal Events by adding a type. The type should be
 * used to distinguish different sub-events. The interface enforces the method
 * getEventType, which returns the type.
 * 
 * @param <T>
 *            The possible types of different events. Types are encoded as
 *            enums.
 * @author Sebastian Bader
 */
public interface TypedEvent<T extends Enum<T>> extends Event {

	/**
	 * @return the type of this event
	 */
	public T getEventType();

}
